package com.yuri.news.service;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import com.yuri.news.entity.Role;

/**
 * 角色Service
 * @author Yuri
 *
 */
public interface RoleService {
	/**
	 * 添加角色
	 * @param role	待添加的角色
	 * @return	成功返回true 失败返回false（失败说明角色已经存在）
	 */
	Boolean addRole(Role role);
	/**
	 * 根据是否可用查询角色
	 * @param page	分页信息
	 * @param isAva	是否可用
	 * @return	查询到的数据
	 */
	Page<Role> findRoleAll(Boolean isAva, Pageable page);
	/**
	 * 根据id查询角色
	 * @param id	角色id
	 * @return		符合要求的角色(无此角色则返回null)
	 */
	Role findRoleById(Long id);
	
	/**
	 * 根据id设置角色可用状态
	 * @param id	角色id
	 * @return		成功返回true 失败返回false（失败则无此角色）
	 */
	Boolean setRoleAvailable(Long id);
	/**
	 * 根据可用状态进行关键字查询角色
	 * @param key		关键字(非id字段)
	 * @param isAva		是否可用
	 * @param page		分页信息
	 * @return		符合要求的数据集
	 */
	Page<Role> findRoleByKey(String key, Boolean isAva, Pageable page);
}
